package com.datastructure.test.setzeromatrix;

import java.util.ArrayList;

public class SetZeroMatrix {

    public static void main(String[] args) {

    }

    public void setZeroMatrix (ArrayList<ArrayList<Integer>> matrix) {
        // write code here
        int rows = matrix.size();
        int lists = matrix.get(0).size();
        boolean[][] flag = new boolean[rows][lists];
        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < lists; j++) {
                if(matrix.get(i).get(j)==0){
                    handleArray(i,j,flag);
                }
            }
        }
        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < lists; j++) {
                if(flag[i][j]){
                    matrix.get(i).set(j,0);
                }
            }
        }
    }

    private void handleArray(int i, int j, boolean[][] flag) {
        for (int k = 0; k < flag[0].length; k++) {
            flag[i][k]=true;
        }
        for (int k = 0; k < flag.length; k++) {
            flag[k][j]=true;
        }
    }
}
